import { getToken, setToken, removeToken,setUserInfo,removeUserInfo, getUserInfo } from '@/utils/auth'
import{Login} from'@/api/user'
import { Message } from 'element-ui'
const state = {
  token: getToken(), // 从缓存中读取初始值
  userInfo:getUserInfo()
}
const mutations = {
  setToken(state, token) {
    state.token = token
    // 同步到缓存
    setToken(token)
  },
  removeToken(state) {
    // 删除Vuex的token
    state.token = null
    removeToken()
  },
  SET_USER_INFO(state,userInfo){
    state.userInfo=userInfo
    setUserInfo(userInfo)
  },REMOVE_USER_INFO(state){
    state.userInfo=null
    removeUserInfo()
  }
  
}

const actions = {
  // context上下文，传入参数
  async login(context,prams) {
    console.log(prams)
    // todo: 调用登录接口
    const {data}= await Login(prams)
    if(data.code===1){
      alert(data.data.token)
      context.commit('setToken',data.data.token)
      context.commit('SET_USER_INFO',data.data)
      return data
    }
    else{
    return  Message.error(data.msg)
    }
    },
    //退出登录
    logout(context){
      //删除token和用户信息
      context.commit('removeToken')
      context.commit('REMOVE_USER_INFO')
    }
   
}
export default {
  namespaced: true, // 开启命名空间
  state,
  mutations,
  actions
}
